package cn.marinda.resturants.service;

import cn.marinda.resturants.entity.Orders;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/** OrderService
 *  订单服务层
 * @author Marinda
 * @date 2021/12/2
 */
public interface OrderService  extends IService<Orders> {

    /** 获取所有订单项
     *
     */

    List<Orders> queryList();


    /**
     * 选择uid
     *
     * @param uid uid
     * @return {@link Orders}
     */
    Orders selectUid(String uid);
    /** 添加订单
     * @param orders 订单
     * @return 结果
     */
    boolean addOrder(Orders orders);

    /** 添加订单
     *
     * @param uid 订单
     * @return 结果
     */
    boolean deleteOrder(String uid);

    /** 修改订单
     *
     * @param  orders 订单
     * @return 结果
     */
    boolean updateOrder(Orders orders);


    /** 搜索指定台号的订单信息
     *
     * @param id 台号id
     * @return 订单信息
     */
    Orders selectId(String id);

    /** 通过订单uid找到用户id
     *
     * @param uid 用户uid
     * @return 订单信息
     */
    String selectOrderUid(String uid);

    /** 查询订单开始时间和订单结束时间的区间订单列
     *
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return 列表订单
     */
    List<Orders> selectStartDateAndEndDateInterval(String startDate , String endDate);


    /** 查询这个用户的所有订单项
     *
     * @param user_uid userUid
     * @return 订单列
     */
    List<Orders> selectUserOrderList(String user_uid);

    /** 查询指定uuid的订单的总消费金额
     *
     * @param uid uid
     * @return 总消费金额
     */
    BigDecimal selectOrderNumber(String uid);

    /** 订单分页
     *
     * @param pages 分页
     * @return 订单分页结果
     */
    IPage<Orders> selectOrderPage(Pages<?> pages);
}
